//Exception Management

#ifndef Exception_h
#define Exception_h

#include <string>

namespace FPTK{

class Exception
{
public:
    Exception(const char *_where,const char *_what);
    Exception(const Exception &ex);
    ~Exception();
    const std::string What() const;
    const std::string Where() const;
    friend std::ostream& operator<<(std::ostream& os,const Exception &obj)
    {    
        os<<obj.Where()<<"\n"<<obj.What()<<std::endl;
        return os;
    }
private:
    std::string __what;
    std::string __where;
};


}//end of namespace FPTK


#endif